Recent advances in the manufacture of very large scale integrated circuits (VLSI) has led to a situation where the cost of a computer and its associated memory has become negligible compared to the cost of developing or aquiring the software required to operate the computer.
Under such circumstances, one would expect to fine a certain degree of software piracy and, indeed, this has been found to be the case, especially where the computer involved uses a microprocessor.
Microprocessor-based computers, sometimes called microcomputers, exclusively comprise the so-called "personal computer"; however, they are also found in business and industry, in competition with the mini and maxi-computer.
While the degree of software piracy that exists among users of "personal computers" is far greater than that found in business and industry, sufficient misappropriation of proprietary software is also found in the latter two instances to cause grave concern.
Software piracy arises, primarily, because of the widespread adoption of magnetic recording media, e.g., floppy disks and cassettes, and, as is well known, with such devices it takes only a few seconds to copy a program from one disk or cassette to another.
Of course, vendors of proprietary software attempt to protect their interests by copyrighting the software and/or by requiring the purchaser to execute some form of contractual agreement which limits his right to duplicate the software or use it on some other CPU. Unfortunately, due to the proliferation of microprocessor-based computer systems, such agreements are difficult to police; indeed, they become impossible to police with respect to "personal computers."
In view of the above, various attempts have been made to solve the software piracy problem. For example, U.S. Pat. No. 4,168,396, which issued on Sept. 18, 1979 to Robert M. Best, discloses a microprocessor which deciphers and executes an encrypted program, one instruction at a time, through a combination of substitutions, transpositions and exclusive-or additions in which the address of each program instruction is combined with the program instruction itself, using a unique set of substitutions. Thus, a program that can be successfully executed in one microprocessor cannot be properly run in any other microprocessor. Unfortunately, the approach taken by Best is expensive, extremely complicated and is not totally immune from attack by a skilled, would-be program pirate.